
package carmadness.model;

/**
 * Szabályokra vonatkozó Visitor minta szerinti visitor interface. A járművek
 * használják, hogy típusbiztosan tudjanak értesülni a szabályok hatásairól.
 * 
 * @author Tomi
 * @version 1.0
 * @created 10-Apr-2010 2:32:41 PM
 */
public interface IRuleVisitor
{

	/**
	 * A Visitor minta szerinti visit metódus.
	 * 
	 * @param rule
	 *            SpeedLimit típusú Rule.
	 */
	public void visitRule( SpeedLimit rule );

	/**
	 * A Visitor minta szerinti visit metódus.
	 * 
	 * @param rule
	 *            TrafficLight típusú Rule.
	 */
	public void visitRule( TrafficLight rule );

	/**
	 * A Visitor minta szerinti visit metódus.
	 * 
	 * @param rule
	 *            StopSign típusú Rule.
	 */
	public void visitRule( StopSign rule );

	/**
	 * 
	 * @param bunny
	 */
	public void visitRule( Bunny bunny );

}
